package com.ruoyi.bpm.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 营销企划书信息对象 bpm_marketing_proposal
 * 
 * @author pjq
 * @date 2025-03-22
 */
public class BpmMarketingProposal extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 营销企划书ID */
    private Long marketingProposalId;

    /** 营销企划书名称 */
    @Excel(name = "营销企划书名称")
    private String marketingProposalName;

    /** 营销企划书文件名 */
    @Excel(name = "营销企划书文件名")
    private String marketingProposalFileName;

    /** 营销企划书文件类型 */
    @Excel(name = "营销企划书文件类型")
    private String marketingProposalFileType;

    /** 营销企划书文件扩展名 */
    @Excel(name = "营销企划书文件扩展名")
    private String marketingProposalFileExtension;

    /** 营销企划书文件路径 */
    @Excel(name = "营销企划书文件路径")
    private String marketingProposalFilePath;

    /** 策划师的用户ID */
    @Excel(name = "策划师的用户ID")
    private Long plannerUserId;

    /** 部门经理的用户ID */
    @Excel(name = "部门经理的用户ID")
    private Long departmentManagerUserId;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private String auditStatus;

    /** 审核结论 */
    @Excel(name = "审核结论")
    private String auditResult;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String auditFeedback;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
    private Date submitTime;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
    private Date auditTime;

    /** 实行时间 */
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
    @Excel(name = "实行时间", width = 30, dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
    private Date executeTime;

    /** 实行情况 */
    @Excel(name = "实行情况")
    private String executeStatus;

    public void setMarketingProposalId(Long marketingProposalId) 
    {
        this.marketingProposalId = marketingProposalId;
    }

    public Long getMarketingProposalId() 
    {
        return marketingProposalId;
    }
    public void setMarketingProposalName(String marketingProposalName) 
    {
        this.marketingProposalName = marketingProposalName;
    }

    public String getMarketingProposalName() 
    {
        return marketingProposalName;
    }
    public void setMarketingProposalFileName(String marketingProposalFileName) 
    {
        this.marketingProposalFileName = marketingProposalFileName;
    }

    public String getMarketingProposalFileName() 
    {
        return marketingProposalFileName;
    }
    public void setMarketingProposalFileType(String marketingProposalFileType) 
    {
        this.marketingProposalFileType = marketingProposalFileType;
    }

    public String getMarketingProposalFileType() 
    {
        return marketingProposalFileType;
    }
    public void setMarketingProposalFileExtension(String marketingProposalFileExtension) 
    {
        this.marketingProposalFileExtension = marketingProposalFileExtension;
    }

    public String getMarketingProposalFileExtension() 
    {
        return marketingProposalFileExtension;
    }
    public void setMarketingProposalFilePath(String marketingProposalFilePath) 
    {
        this.marketingProposalFilePath = marketingProposalFilePath;
    }

    public String getMarketingProposalFilePath() 
    {
        return marketingProposalFilePath;
    }
    public void setPlannerUserId(Long plannerUserId) 
    {
        this.plannerUserId = plannerUserId;
    }

    public Long getPlannerUserId() 
    {
        return plannerUserId;
    }
    public void setDepartmentManagerUserId(Long departmentManagerUserId) 
    {
        this.departmentManagerUserId = departmentManagerUserId;
    }

    public Long getDepartmentManagerUserId() 
    {
        return departmentManagerUserId;
    }
    public void setAuditStatus(String auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() 
    {
        return auditStatus;
    }
    public void setAuditResult(String auditResult) 
    {
        this.auditResult = auditResult;
    }

    public String getAuditResult() 
    {
        return auditResult;
    }
    public void setAuditFeedback(String auditFeedback) 
    {
        this.auditFeedback = auditFeedback;
    }

    public String getAuditFeedback() 
    {
        return auditFeedback;
    }
    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }
    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }
    public void setExecuteTime(Date executeTime) 
    {
        this.executeTime = executeTime;
    }

    public Date getExecuteTime() 
    {
        return executeTime;
    }
    public void setExecuteStatus(String executeStatus) 
    {
        this.executeStatus = executeStatus;
    }

    public String getExecuteStatus() 
    {
        return executeStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("marketingProposalId", getMarketingProposalId())
            .append("marketingProposalName", getMarketingProposalName())
            .append("marketingProposalFileName", getMarketingProposalFileName())
            .append("marketingProposalFileType", getMarketingProposalFileType())
            .append("marketingProposalFileExtension", getMarketingProposalFileExtension())
            .append("marketingProposalFilePath", getMarketingProposalFilePath())
            .append("plannerUserId", getPlannerUserId())
            .append("departmentManagerUserId", getDepartmentManagerUserId())
            .append("auditStatus", getAuditStatus())
            .append("auditResult", getAuditResult())
            .append("auditFeedback", getAuditFeedback())
            .append("submitTime", getSubmitTime())
            .append("auditTime", getAuditTime())
            .append("executeTime", getExecuteTime())
            .append("executeStatus", getExecuteStatus())
            .toString();
    }
}
